/*
 * @lc app=leetcode.cn id=34 lang=javascript
 *
 * [34] 在排序数组中查找元素的第一个和最后一个位置
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var searchRange = function (nums, target) {
  let l = 0;
  let r = nums.length-1;
  let mid = (l + r) >> 1;
  while (l < r) {
    if (nums[mid] == target) break;
    else if (nums[mid] > target) {
      r = mid - 1;
    } else {
      l = mid + 1;
    }
    mid=(l+r)>>1
  }
  if(nums[mid]!==target){
      return [-1,-1]
  }
  l=mid
  let res=[mid,mid]
  while(nums[l]==target||nums[mid]==target){
    l--
    mid++
    if(nums[l]==target){
        res[0]=l
    }
    if(nums[mid]==target){
        res[1]=mid
    }
  }
  return res
};
// @lc code=end
